package com.bt.dmdb.service;

import java.util.List;
import java.util.Map;

import org.joda.time.LocalDateTime;
import org.springframework.web.bind.annotation.RequestParam;

import com.bt.dmdb.model.BusinessNature;
import com.bt.dmdb.model.CustomerDetails;
import com.bt.dmdb.model.CustomerDocument;
import com.bt.dmdb.model.CustomerQuestion;
import com.bt.dmdb.model.Document;
import com.bt.dmdb.model.DocumentDto;
import com.bt.dmdb.model.LoginUser;
import com.bt.dmdb.model.*;


public interface UsersService {

    LoginUser getLoggedInUser(Long userId);
    List<CustomerQuestion> getResponseNFFE(long id);
	List<CustomerQuestion> getResponseFFI(long id);
    LoginUser validateUser(String userName, String password);
    List<LoginUser> findAllUsers();
    void addUser(String firstName, String lastName, String emailId, String password,String role);
    LoginUser findUserById(long id);
    void editUser(Long id, String firstName, String lastName, String emailId, String password, String role);
    CustomerDetails addCustomerDetails(CustomerDetails details, LoginUser loginUser); 
    List<CustomerDetails> findAllCustomers();
    CustomerDetails findCustomerById(@RequestParam long id);
    LoginUser getUser(String login);
     List<Document> getDocuments();
     List<Document> getDocuments1();
     void saveDocs(Long custID, Long docId, String fileName,LocalDateTime localDateTime,String filePath);
     List<CustomerDocument> findDocumentByCustId(long id);
     List<Question> findNFFECommonQuestion();
     Map<Object, Object> findMakerInitialQuestion();
     //List<Document> getDocumentNamesList();
     List<Document> getDocumentNames();
     List<Question> findQuesByCategory(String category);
     List<LoginUser> findAllCheckers();
     Object[] saveMakerInitialQuest(String custID, String catL, String quesId0, String ansId0, String quesId1, String ansId1, String catdd);
     
    List<Object> getListOfNFFECategory();
	List<Object> getListOfFFICategory();
	List<CustomerDetails> findAllCustomersChecker();
	Map<Long,DocumentDto> getRules();
	List<Document> findDocumentRules();
	List<CustomerDocument> documentUploded(long id);
	List<CustomerQuestion> getResponseSpecNFFE(long id);
    List<CustomerQuestion> getResponseSpecFFI(long id);
    void saveDocumentRulesByDocId(DocumentDto y);
    void deleteByCustomerId(CustomerDocument y);
    void deleteAdminByDocumentId(Document y);
    List<DocumentDto> getAdminDocRules();
    void deleteUserById(long id);
    void saveAllUsers(List<LoginUser> y);
	void saveAllBusinessNature(List<BusinessNature> y);
	void saveAllEagMemberStatus(List<MemberStatus> y);	
	void saveAllPassiveIncome(List<EagPassiveIncome> y);
	void saveAllExchangeMarket(List<Market> y);
	void saveAllLocation(List<Locations> y);
	void saveAllRegulators(List<Regulators> y);
	void saveAllRestrictedDistributor(List<RestrictedDistributor> y);
	void saveAllStocksDistribution(List<StocksDistribution> y);
	void saveAllSourceIncome(List<SourceIncome> y);
	void saveAllContact(List<Contact> y);
	List<CustomerDetails> getAllAuditor();
	List<CustomerDetails> getAllCustomers();
	
	
}
